In a computer mail system, also known as an electronic mail system, a user may send messages to other users. The user to whom a message is sent is called the addressee of the message. Messages may contain text, or data in any other form. Messages sent within a computer mail system are typically transported across a computer network.
In order to enable the exchange of message between a larger number of users, two computer mail systems may be connected by a gateway. A gateway is a software facility that executes on a computer connected to both of the computer networks that each transport messages for one of the mail systems. FIG. 1 is a high-level block diagram of two mail systems connected by a conventional gateway. The gateway preferably operates on a computer system 100 which contains network connection 105 and network connection 106. Network connection 105 connects the computer system 100 to a first network 111. The first network 111 also connects to computer system 120 and computer system 130 via network connection 125 and network connection 135 respectively. The computer systems connected by the first network 111 comprise the first mail system 110. Similarly, a second mail system 160 is comprised of the computer systems connected by network 161. The computer systems connected by network 161 include computer system 100 via network connection 106, computer system 170 via network connection 176, and computer system 180 via network connection 186.
Gateways pass messages from an originating mail system to a receiving mail system, doing any necessary conversion from message formats used by the originating mail system to those used by the receiving mail system. Because mail systems are usually somewhat proprietary, a particular type of message may be formatted in one format for one mail system and in a different format for a different mail system. For example, in messages of some types, one mail system might use the American Standard Code for Information Interchange (ASCII) in the message, while another mail system might use the Extended Binary Code Decimal Interchange Code (EBCDIC) to represent each character of text.
In early mail systems, users sent messages of only one type, containing a block of undifferentiated text whose contents are not divided into portions having special significance. This made gateway message format conversion straightforward, as a typical gateway required only two different conversion routines ("converters"): one to translate an undifferentiated text messages from the format for a first mail system to the format for a second mail system, and one to translate from the format for the second mail system to the format for the first mail system. These converters are usually incorporated directly into the gateway by statically linking their code with the gateway's code.
In order to accommodate different, more specialized kinds of message content, new message types are now regularly being developed. Existing message types include notes with diverse contents, administrative messages such as non-delivery reports, electronic forms, and a variety of scheduling messages. In order for an existing gateway to convert messages of each newly developed type, the gateway must be rewritten to incorporate two new converters (i.e., a separate converter for converting messages traveling through the gateway in each direction). This rewriting of existing gateways has important disadvantages. First, because gateways are in most cases proprietary software products, only the original developers of a gateway have the information (most notably the original source code) necessary to rewrite the gateway. This prevents mail system administrators who administer gateways from themselves adding converters that they develop. Further, once the gateway is rewritten, the entire gateway must be distributed to any customers desiring to use the new converters. It is expensive to original developers of a gateway to have to redistribute the entire gateway, and it is a laborious process for a mail system administrator to install and configure an entire updated gateway.